/// 获取函数的路径
///
/// # Example
/// ```
/// fn my_function1() {
///     println!("my_function1");
/// }
/// fn my_function2() {
///     println!("my_function2");
/// }
/// // fn() 为函数指针
/// let mut function_map: HashMap<&str, fn()> = HashMap::new();
/// let function_path = type_name_of_val(&my_function1);
/// function_map.insert(function_path, my_function1);
/// let function_path = type_name_of_val(&my_function2);
/// function_map.insert(function_path, my_function2);
/// let func = function_map.get(function_path).unwrap();
/// func();
/// ```
#[macro_export]
macro_rules! func_path {
    (
        $func:expr
    ) => {{
        use std::any::type_name_of_val;
        type_name_of_val(&$func)
    }};
}
